#ifndef __ANYTIMER_H__
#define __ANYTIMER_H__

#define JOB_MAX (1024)

typedef void at_jobfunc_t(void *);

/* return
 *  >= 0 成功，返回数组下标
 *  -EINVAL 失败，参数非法
 *  -ENOSPC 失败，数组满
 *  -ENOMEM 失败，内存空间不足
 */
int at_addjob(int sec, at_jobfunc_t *jobp, void *arg);

/* 添加一个周期性任务，每间隔sec秒重复执行jobp
 * return
 *  >= 0 成功，返回数组下标
 *  -EINVAL 失败，参数非法
 *  -ENOSPC 失败，数组满
 *  -ENOMEM 失败，内存空间不足
 */
int at_addjob_repeat(int sec, at_jobfunc_t *jobp, void *arg);

/* return
 *  >= 0 成功，指定任务以被取消
 *  -EINVAL 失败，参数非法
 *  -EBUSY 失败，指定任务已完成(处于不工作状态)
 *  -ECANCELED 失败，指定任务重复取消
 */
int at_canceljob(int id);

/* return
 *  0 成功，指定任务被成功释放
 *  -EINVAL 失败，参数非法
 *  -EBUSY 失败，指定了一个为周期性任务
 */
int at_waitjob(int id);


//int at_pausejob(int id); //暂停任务
//int at_resumejob(int id); //恢复任务
#endif //__ANYTIMER_H__
